<?php
/**
 * SearchEngine Lucene
 *
 * @author Steven.liao
 * @author seraph.liujb 2009.07.10
 *
 */

class Common_SearchEngine_Lucene extends Lucene //extends Lucene from: application/_default/models/Lucene.php
{
	/**
	 * 搜索服务地址配置
	 *
	 * @var string $_url ssss
	 */
	protected $_url = "http://192.168.10.254:8080/Service/SE";

	/**
	 * 初始化处理
	 *
	 */
	public function __construct()
	{
		$this->_logger = Common_Logger::factory(array('module'=>'Common_SearchEngine_Lucene'));
	}

	/**
	 * 查询索引 对外
	 *
	 * @param $keyword 查询条件
	 * @param $page 指定页码
	 * @param $limit 查询条数
	 * @return array
	 */
	public function query($keyword, $page = null, $limit = null)
	{
		$result = parent::query($keyword,$page,$limit);
		//判断如果返回记录集为1条，修整返回数组
		if (1 == $result['count']) {
			$temp = $result['doc'];
			$result['doc'] = array();
			$result['doc'][0] = $temp;
		}
		return $result;
	}

	/**
	 * 加入索引数据 单条
	 *
	 * @param array $data 字段数组
	 * @return array
	 */
	public function create($data)
	{
		$result = parent::add($data);
		$result = $result['doc'];
		return $result;
	}

	/**
	 * 更新索引数据
	 *
	 * @param array $data 需更新的数据数组
	 * @return array
	 */
	public function update($data)
	{
		$result = parent::update($data);
		$result = $result['doc'];
		return $result;
	}

	/**
	 * 删除索引数据
	 *
	 * @param int or array $id 当前索引ID 
	 * @return array
	 */
	public function delete($id)
	{
		$result = parent::delete($id);
		$result = $result['doc'];
		return $result;
	}

	/**
	 * 索引commit
	 *
	 * @return array
	 */
	public function commit()
	{
		$result = parent::commit();
		return $result;
	}

	/**
	 * 优化当前索引
	 *
	 * @return array
	 */
	public function optimize()
	{
		$result = parent::optimize();
		return $result;
	}

	/**
	 * 统计索引数据
	 *
	 * @return array
	 */
	public function count()
	{
		$result = parent::count();
		return $result;
	}
}
